//#include "pwm.h"
//#include "stm32f10x_tim.h"
//#include "stm32f10x_gpio.h"
//#include "stm32f10x_rcc.h"

//void PWM_Init(void)
//{
//    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
//    TIM_OCInitTypeDef TIM_OCInitStructure;
//    GPIO_InitTypeDef GPIO_InitStructure;
//    
//    // 开启TIM4时钟和GPIOB时钟
//    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
//    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
//    
//    // 配置PWM引脚 (PB8, PB9) 为复用推挽输出
//    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9;
//    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
//    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//    GPIO_Init(GPIOB, &GPIO_InitStructure);
//    
//    // 初始化定时器
//    TIM_TimeBaseStructure.TIM_Period = PWM_PERIOD - 1;
//    TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1;
//    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
//    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
//    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
//    
//    // PWM通道配置
//    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
//    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
//    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
//    
//    // 通道3配置 (PB8 - 右轮)
//    TIM_OCInitStructure.TIM_Pulse = 0;
//    TIM_OC3Init(TIM4, &TIM_OCInitStructure);
//    TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
//    
//    // 通道4配置 (PB9 - 左轮)
//    TIM_OCInitStructure.TIM_Pulse = 0;
//    TIM_OC4Init(TIM4, &TIM_OCInitStructure);
//    TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
//    
//    // 启用自动重载预装载寄存器
//    TIM_ARRPreloadConfig(TIM4, ENABLE);
//    
//    // 使能TIM4
//    TIM_Cmd(TIM4, ENABLE);
//}

//void Set_Motor_Speed(int left_speed, int right_speed)
//{
//    // 限制速度范围
//    if (left_speed < 0) left_speed = 0;
//    if (left_speed > PWM_PERIOD) left_speed = PWM_PERIOD;
//    if (right_speed < 0) right_speed = 0;
//    if (right_speed > PWM_PERIOD) right_speed = PWM_PERIOD;
//    
//    // 设置PWM占空比
//    TIM4->CCR3 = right_speed;  // 右轮 - PB8
//    TIM4->CCR4 = left_speed;   // 左轮 - PB9
//}

//void Set_Both_Motor_Speed(int speed)
//{
//    Set_Motor_Speed(speed, speed);
//}